package kim.artemis.rpc.core.annotation;

import kim.artemis.rpc.core.common.enums.LoadBalanceEnum;

import java.lang.annotation.*;

/**
 * 动态属性注入注解
 */
@Target(value = {ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ArtemisRpcReference {

    /**
     * 指定版本
     * @return
     */
    String version() default "";

    /**
     * 超时时间
     * @return
     */
    long timeOut() default 1000;

    /**
     * 指定服务地址
     * @return
     */
    String serviceAddress() default "";

    /**
     * 指定令牌
     * @return
     */
    String accessToken() default "";

    /**
     * 负载均衡
     * @return
     */
    LoadBalanceEnum loadBalance() default LoadBalanceEnum.POLLING;

}
